package com.wh.wisdomsite.xbox.st.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.ba.entity.CommonFile;
import com.wh.wisdomsite.xbox.st.entity.PurchaseApply;

import java.io.Serializable;
import java.util.Map;

/**
 * 采购申请Service
 * @author 刘旭
 * @version V1.0
 * @Package com.wh.wisdomsite.xbox.st.service
 * @date 2018年12月24日 14:44
 * @Copyright 企业版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2018
 */
public interface IPurchaseApplyService extends IService<PurchaseApply> {
    /**
     * 获取申请已经上报分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String, Object>> getReportedPage(Page var1, Wrapper<PurchaseApply> var2);

    /**
     * 获取完整采购申请信息
     * @param id
     * @return
     */
    Map<String,Object> getMapById(Serializable id);


    /**
     * 获取完整信息分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String,Object>> getMapsPage(Page var1, Wrapper<PurchaseApply> var2);

    /**
     * 获取完整信息分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String,Object>> getMapsListPage(Page var1, Wrapper<PurchaseApply> var2);

    
    /**
     * 获取请购数据
     * @param page   分页对象
     * @param purchaseApply  采购对象
     * @return
     */
    Page<PurchaseApply> selectPage(Page<PurchaseApply> page, PurchaseApply purchaseApply, String compCode);


    /**
     * 获取请购数据
     * @param page   分页对象
     * @param purchaseApply  采购对象
     * @param compCode  公司编码
     * @return
     */
    Page<PurchaseApply> queryPage(Page<PurchaseApply> page, PurchaseApply purchaseApply,String compCode);


    /**
     * 审核请购
     * @param purId
     */
    void checkPurchaseApply(String purId) throws Exception;

    /**
     * 保存请购申请及其附件
     * @param purchaseApply
     * @param commonFile
     * @param fileName
     * @param pfId
     * @throws Exception
     */
    void savePurchaseApply(PurchaseApply purchaseApply, CommonFile commonFile, String fileName, String pfId, String userId, String compCode) throws Exception;

    /**
     * 根据值得长度获取编号前缀
     * @param valueLen
     * @return
     */
    String getNumberFront(String valueLen);


    void delPurchaseByPurId(String purId) throws Exception;


    /**
     * 根据请购单号获取对象
     * @param purId  请购单号
     * @return
     */
    PurchaseApply getPurchaseApplyByPurId(String purId);


}
